(set-logic  QF_BV)

(set-info :status unsat)

(define-fun bvsmod_def ((s (_ BitVec 13)) (t (_ BitVec 13))) (_ BitVec 13)
     (let ((msb_s ((_ extract 12 12) s))
           (msb_t ((_ extract 12 12) t)))
       (let ((abs_s (ite (= msb_s #b0) s (bvneg s)))
             (abs_t (ite (= msb_t #b0) t (bvneg t))))
         (let ((u (bvurem abs_s abs_t)))
           (ite (= u (_ bv0 13))
                u
           (ite (and (= msb_s #b0) (= msb_t #b0))
                u
           (ite (and (= msb_s #b1) (= msb_t #b0))
                (bvadd (bvneg u) t)
           (ite (and (= msb_s #b0) (= msb_t #b1))
                (bvadd u t)
                (bvneg u)))))))))

(define-fun a () (_ BitVec 13) (_ bv30 13))
(define-fun b () (_ BitVec 13) (_ bv8190 13))

(assert (not (= (bvsmod_def a b) (bvsmod a b))))

(check-sat)

(exit)
